package Thread;

public class Demo13 {
    /**
     * 这样修改才能得到预期的结果10w
     * @param args
     */
    public static void main(String[] args) throws InterruptedException {
        Thread t1 = new Thread(()->{
            for (int i =0; i<50000;i++){
                count++;
            }
        });
        Thread t2 = new Thread(()->{
            for (int i=0;i<50000;i++){
                count++;
            }
        });
        t1.start();
        t1.join();
//如果没有这俩join，肯定不行的，线程还没有自增完，就开始打印了，很可能打印出count 就是个9
        t2.start();
        t2.join();
        System.out.println("count:"+count);
    }
    /**
     * 这样的代码出bug了，这是多线程并发执行引起的问题
     * 如果把两个线程，变成串行执行（一个完了，再执行另一个
     */
    private  static  int count =0;
    public static void main1(String[] args) throws InterruptedException {
        Thread t1 = new Thread(()->{
            for (int i =0; i<50000;i++){
                count++;
            }
        });
        Thread t2 = new Thread(()->{
            for (int i=0;i<50000;i++){
                count++;
            }
        });
        t1.start();
        t2.start();
//如果没有这俩join，肯定不行的，线程还没有自增完，就开始打印了，很可能打印出count 就是个9
        t1.join();
        t2.join();
        System.out.println("count:"+count);
    }
}
